package demo1;

import java.util.LinkedList;
import java.util.List;

public class eg {
    public static void main(String[] args) {
        LinkedList<Integer>list =new LinkedList<>();
        list.add(1); //add(elem):表示尾插
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        System.out.println(list.size());  //7
        System.out.println(list);  //[1, 2, 3, 4, 5, 6, 7]

        //在起始位置插入0
        list.add(0,0);  //add(index,elem):在index位置插入元素elem,index代表要调整位置的下标
        System.out.println(list);  //[0, 1, 2, 3, 4, 5, 6, 7]

        list.remove();  //recome():删除第一个元素，内部调用的是removeFist()
        list.removeFirst(); //删除第一个元素
        list.removeLast();  //删除最后的元素
        list.remove(1);  //remove(index):删除index位置的元素
        System.out.println(list);  //[2, 4, 5, 6]

        //contains(elem):检测elem元素是否存在,如果存在返回ture,否则返回false
        if (!list.contains(1)){
            list.add(0,1);
        }
        list.add(1);
        System.out.println(list);  //[1, 2, 4, 5, 6, 1]
        System.out.println(list.indexOf(1));  //从前往后找到第一个elem的位置  0
        System.out.println(list.lastIndexOf(1));  //从后往前找到第一个1的位置  5
        int elem = list.get(0);  //get(index):获取指定位置的元素
        list.set(0,100);  //set(index,elem):将index位置的元素设置为elem
        System.out.println(list);  //[100, 2, 4, 5, 6, 1]

        //subList(from,to):用list中[from,to)之间的元素构造一个新的LinkedList返回
        List<Integer>copy =list.subList(0,3);
        System.out.println(list);  //[100, 2, 4, 5, 6, 1]
        System.out.println(copy);  //[100, 2, 4]
        list.clear();  //将list中元素清空
        System.out.println(list.size());  //0
    }

}
